<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Linux常用命令 | 天涯海阁</title><meta name="keywords" content="Linux,Ubuntu"><meta name="author" content="kcyln"><meta name="copyright" content="kcyln"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta http-equiv="Cache-Control" content="no-transform"><meta http-equiv="Cache-Control" content="no-siteapp"><meta name="description" content="这里记录了一些Linux常用的基本的命令。">
<meta property="og:type" content="article">
<meta property="og:title" content="Linux常用命令">
<meta property="og:url" content="https://blog.kcyln.xyz/posts/d0edc1ed/index.html">
<meta property="og:site_name" content="天涯海阁">
<meta property="og:description" content="这里记录了一些Linux常用的基本的命令。">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg">
<meta property="article:published_time" content="2019-10-01T04:00:00.000Z">
<meta property="article:modified_time" content="2019-10-01T04:00:00.000Z">
<meta property="article:author" content="kcyln">
<meta property="article:tag" content="ubuntu">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg"><link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/kcyln/ImageHosting@latest/2020/12/07/9a938caffcb1a6968eab7f8e0cd6857b.png"><link rel="canonical" href="https://blog.kcyln.xyz/posts/d0edc1ed/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//www.google-analytics.com" crossorigin="crossorigin"/><link rel="preconnect" href="//hm.baidu.com"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><meta name="baidu-site-verification" content="http://data.zz.baidu.com/urls?site=https://kcyln.gitee.io&amp;token=OxN6ShKmGLRo1lRY"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.10.5/dist/instantsearch.min.css"><script src="https://cdn.jsdelivr.net/npm/instantsearch.js@2.10.5/dist/instantsearch.min.js" defer></script><script async="async" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><script>(adsbygoogle = window.adsbygoogle || []).push({
  google_ad_client: 'ca-pub-4985175266208920',
  enable_page_level_ads: 'true'
});</script><script>var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?584bfa4db6126a105facde0677e4ef55";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script><script async="async" src="https://www.googletagmanager.com/gtag/js?id=G-CYJNKFDP03"></script><script>window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-CYJNKFDP03');
</script><script>var GLOBAL_CONFIG = { 
  root: '/',
  algolia: {"appId":"6PUFXLP7OS","apiKey":"999de1c071e733df1a6cc5d90b12b63a","indexName":"my_blog","hits":{"per_page":6},"languages":{"input_placeholder":"搜索文章","hits_empty":"找不到您查询的内容：${query}","hits_stats":"找到 ${hits} 条结果，用时 ${time} 毫秒"}},
  localSearch: undefined,
  translate: undefined,
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: true,
    post: false
  },
  runtime: '天',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  ClickShowText: undefined,
  lightbox: 'fancybox',
  Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#49b1f5","bgDark":"#121212","position":"bottom-left"},
  justifiedGallery: {
    js: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/js/jquery.justifiedGallery.min.js',
    css: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/css/justifiedGallery.min.css'
  },
  isPhotoFigcaption: false,
  islazyload: false,
  isanchor: false
};

var saveToLocal = {
  set: function setWithExpiry(key, value, ttl) {
    const now = new Date()
    const expiryDay = ttl * 86400000
    const item = {
      value: value,
      expiry: now.getTime() + expiryDay,
    }
    localStorage.setItem(key, JSON.stringify(item))
  },

  get: function getWithExpiry(key) {
    const itemStr = localStorage.getItem(key)

    if (!itemStr) {
      return undefined
    }
    const item = JSON.parse(itemStr)
    const now = new Date()

    if (now.getTime() > item.expiry) {
      localStorage.removeItem(key)
      return undefined
    }
    return item.value
  }
}</script><script id="config_change">var GLOBAL_CONFIG_SITE = { 
  isPost: true,
  isHome: false,
  isHighlightShrink: false,
  isToc: true,
  postUpdate: '2019-10-01 12:00:00'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(function () {  window.activateDarkMode = function () {
    document.documentElement.setAttribute('data-theme', 'dark')
    if (document.querySelector('meta[name="theme-color"]') !== null) {
      document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
    }
  }
  window.activateLightMode = function () {
    document.documentElement.setAttribute('data-theme', 'light')
   if (document.querySelector('meta[name="theme-color"]') !== null) {
      document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
    }
  }
  const autoChangeMode = 'false'
  const t = saveToLocal.get('theme')
  if (autoChangeMode === '1') {
    const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
    const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches
    const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches
    const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified
    if (t === undefined) {
      if (isLightMode) activateLightMode()
      else if (isDarkMode) activateDarkMode()
      else if (isNotSpecified || hasNoSupport) {
        const now = new Date()
        const hour = now.getHours()
        const isNight = hour <= 6 || hour >= 18
        isNight ? activateDarkMode() : activateLightMode()
      }
      window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) {
        if (saveToLocal.get('theme') === undefined) {
          e.matches ? activateDarkMode() : activateLightMode()
        }
      })
    } else if (t === 'light') activateLightMode()
    else activateDarkMode()
  } else if (autoChangeMode === '2') {
    const now = new Date()
    const hour = now.getHours()
    const isNight = hour <= 6 || hour >= 18
    if (t === undefined) isNight ? activateDarkMode() : activateLightMode()
    else if (t === 'light') activateLightMode()
    else activateDarkMode()
  } else {
    if (t === 'dark') activateDarkMode()
    else if (t === 'light') activateLightMode()
  }const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
   if (asideStatus === 'hide') {
     document.documentElement.classList.add('hide-aside')
   } else {
     document.documentElement.classList.remove('hide-aside')
   }
}})()</script><style type="text/css">#toggle-sidebar {bottom: 80px}</style><meta name="generator" content="Hexo 5.2.0"></head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">加载中...</div></div></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="author-avatar"><img class="avatar-img" src="https://cdn.jsdelivr.net/gh/kcyln/ImageHosting@latest/2020/12/07/8b2bf57d105d56f23dc7d3fa1b08cd9a.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data"><div class="data-item is-center"><div class="data-item-link"><a href="/archives/"><div class="headline">文章</div><div class="length-num">15</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/tags/"><div class="headline">标签</div><div class="length-num">21</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/categories/"><div class="headline">分类</div><div class="length-num">4</div></a></div></div></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);" rel="external nofollow noreferrer"><i class="fa-fw fas fa-book"></i><span> 文档</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/posts/f4956656/"><i class="fa-fw fas fa-cog"></i><span> 常用安装</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);" rel="external nofollow noreferrer"><i class="fa-fw fas fa-heartbeat"></i><span> 娱乐</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/music/"><i class="fa-fw fas fa-music"></i><span> 音乐</span></a></li><li><a class="site-page" href="/Gallery/"><i class="fa-fw fas fa-images"></i><span> 照片</span></a></li><li><a class="site-page" href="/movies/"><i class="fa-fw fas fa-video"></i><span> 电影</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友情链接</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div></div></div><div id="body-wrap"><header class="post-bg" id="page-header" style="background-image: url(https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg)"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">天涯海阁</a></span><span id="menus"><div id="search_button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);" rel="external nofollow noreferrer"><i class="fa-fw fas fa-book"></i><span> 文档</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/posts/f4956656/"><i class="fa-fw fas fa-cog"></i><span> 常用安装</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);" rel="external nofollow noreferrer"><i class="fa-fw fas fa-heartbeat"></i><span> 娱乐</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/music/"><i class="fa-fw fas fa-music"></i><span> 音乐</span></a></li><li><a class="site-page" href="/Gallery/"><i class="fa-fw fas fa-images"></i><span> 照片</span></a></li><li><a class="site-page" href="/movies/"><i class="fa-fw fas fa-video"></i><span> 电影</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友情链接</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div><span class="close" id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></span></span></nav><div id="post-info"><h1 class="post-title">Linux常用命令</h1><div id="post-meta"><div class="meta-firstline"><span class="post-meta-date"><i class="far fa-calendar-alt fa-fw post-meta-icon"></i><span class="post-meta-label">发表于</span><time class="post-meta-date-created" datetime="2019-10-01T04:00:00.000Z" title="发表于 2019-10-01 12:00:00">2019-10-01</time><span class="post-meta-separator">|</span><i class="fas fa-history fa-fw post-meta-icon"></i><span class="post-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2019-10-01T04:00:00.000Z" title="更新于 2019-10-01 12:00:00">2019-10-01</time></span><span class="post-meta-categories"><span class="post-meta-separator">|</span><i class="fas fa-inbox fa-fw post-meta-icon"></i><a class="post-meta-categories" href="/categories/Linux/">Linux</a></span></div><div class="meta-secondline"> <span class="post-meta-separator">|</span><span class="post-meta-wordcount"><i class="far fa-file-word fa-fw post-meta-icon"></i><span class="post-meta-label">字数总计:</span><span class="word-count">4.1k</span><span class="post-meta-separator">|</span><i class="far fa-clock fa-fw post-meta-icon"></i><span class="post-meta-label">阅读时长:</span><span>13分钟</span></span><span class="post-meta-separator">|</span><span class="post-meta-pv-cv"><i class="far fa-eye fa-fw post-meta-icon"></i><span class="post-meta-label">阅读量:</span><span id="busuanzi_value_page_pv"></span></span></div></div></div></header><main class="layout" id="content-inner"><div id="post"><article class="post-content" id="article-container"><h2 id="基础命令"><a href="#基础命令" class="headerlink" title="基础命令"></a>基础命令</h2><ul>
<li><p>ls    list    查看当前文件夹下的内容</p>
<ul>
<li><p>-a      显示指定目录下所有子目录与文件，包括隐藏文件<br>-l      以列表方式显示文件的详细信息<br>-h      配合 -l 以人性化的方式显示文件大小</p>
<p>pwd   print wrok directory    查看当前所在文件夹</p>
<p>cd [目录名]    change directory    切换文件夹</p>
<p>cd      切换到当前用户的主目录(/home/用户目录)<br>cd ~   切换到当前用户的主目录(/home/用户目录)<br>cd .      保持在当前目录不变<br>cd ..   切换到上级目录<br>cd -      可以在最近两次工作目录之间来回切换</p>
</li>
</ul>
</li>
<li><p>创建和删除操作</p>
<ul>
<li>touch [文件名]   touch     如果文件不存在，新建文件<ul>
<li>创建文件或修改文件时间<ul>
<li>如果文件 不存在，可以创建一个空白文件</li>
<li>如果文件 已经存在，可以修改文件的末次修改日期</li>
</ul>
</li>
</ul>
</li>
<li>mkdir [目录名]   make directory  创建目录<ul>
<li>-p可以递归创建目录<pre><code>rm [文件名] remove    删除指定的文件名</code></pre>
   -f    强制删除，忽略不存在的文件，无需提示<br>   -r    递归地删除目录下的内容，删除文件夹 时必须加此参数<pre><code>clear    clear    清屏</code></pre>
</li>
</ul>
</li>
</ul>
</li>
<li><p>拷贝和移动文件</p>
<ul>
<li>tree [目录名] tree    以树状图列出文件目录结构<ul>
<li>-d只显示目录<pre><code>cp 源文件 目标文件    copy    复制文件或者目录</code></pre>
   -i    覆盖文件前提示<br>   -r    若给出的源文件是目录文件，则 cp 将递归复制该目录下的所有子目录和文件，目标  文件必须为一个目录名<pre><code>mv 源文件 目标文件    move    移动文件或者目录／文件或者目录重命名</code></pre>
</li>
<li>-i覆盖文件前提示</li>
</ul>
</li>
</ul>
</li>
<li><p>查看文件内容</p>
<ul>
<li><p>cat 文件名   concatenate    查看文件内容、创建文件、文件合并、追加文件内容等</p>
<p><em>cat 命令可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能，cat 会一次显示所有的内容，适合 查看内容较少 的文本文件。</em></p>
<ul>
<li>-b    对非空输出行编号<br>-n    对输出的所有行编号</li>
</ul>
</li>
<li><p>more 文件名    more   分屏显示文件内容</p>
<p><em>more 命令可以用于分屏显示文件内容，每次只显示一页内容适合于 查看内容较多的文本文件。</em></p>
<ul>
<li><p>空格键    显示手册页的下一屏<br>Enter 键    一次滚动手册页的一行<br> b    回滚一屏<br> f    前滚一屏<br> q    退出<br> /word    搜索 word 字符串</p>
<pre><code>grep 搜索文本 文件名      grep   搜索文本文件内容</code></pre>
</li>
</ul>
<p><em>Linux 系统中 grep 命令是一种强大的文本搜索工具，grep允许对文本文件进行 模式查找，所谓模式查找，即正则表达式。</em></p>
<ul>
<li>-n    显示匹配行及行号<br>-v    显示不包含匹配文本的所有行（相当于求反）<br> -i    忽略大小写</li>
</ul>
</li>
</ul>
</li>
<li><p>其他</p>
<ul>
<li><p>echo 文字内容</p>
<ul>
<li>echo 会在终端中显示参数指定的文字，通常会和 重定向 联合使用</li>
</ul>
</li>
<li><p>重定向 &gt; 和 &gt;&gt;</p>
<p><em>Linux 允许将命令执行结果 重定向到一个 文件将本应显示在终端上的内容 输出／追加 到指定文件中</em></p>
<ul>
<li>&gt; 表示输出，会覆盖文件原有的内容</li>
<li>&gt;&gt; 表示追加，会将内容追加到已有文件的末尾</li>
</ul>
</li>
<li><p>管道 |</p>
<p><em>Linux 允许将 一个命令的输出 可以通过管道 做为 另一个命令的输入</em></p>
<ul>
<li>more：分屏显示内容</li>
<li>grep：在命令执行结果的基础上查询指定的文本</li>
</ul>
</li>
</ul>
</li>
<li><p>小技巧</p>
<ul>
<li>ctrl + - 缩小终端窗口的字体显示</li>
<li>ctrl + + 放大终端窗口的字体显示</li>
</ul>
</li>
</ul>
<h2 id="远程管理常用命令"><a href="#远程管理常用命令" class="headerlink" title="远程管理常用命令"></a>远程管理常用命令</h2><ul>
<li><p>关机/重启</p>
<ul>
<li><p>shutdown</p>
<p><em>不指定选项和参数，默认表示 1 分钟之后 关闭电脑远程维护服务器时，最好不要关闭系统，而应该重新启动系统</em></p>
<ul>
<li>-r重新启动</li>
<li># 重新启动操作系统，其中 now 表示现在 $ shutdown -r now</li>
<li># 立刻关机，其中 now 表示现在 $ shutdown now</li>
<li># 系统在今天的 20:25 会关机 $ shutdown 20:25</li>
<li># 系统再过十分钟后自动关机 $ shutdown +10</li>
<li># 取消之前指定的关机计划 $ shutdown -c</li>
</ul>
</li>
</ul>
</li>
<li><p>查看或配置网卡信息</p>
<ul>
<li><p>ifconfig</p>
<p><em>一台计算机中有可能会有一个 物理网卡 和 多个虚拟网卡，在 Linux 中物理网卡的名字通常以 ensXX 表示127.0.0.1 被称为 本地回环/环回地址，一般用来测试本机网卡是否正常</em></p>
<ul>
<li># 查看网卡配置信息 $ ifconfig</li>
<li># 查看网卡对应的 IP 地址 $ ifconfig | grep inet</li>
</ul>
</li>
<li><p>ping</p>
</li>
</ul>
</li>
<li><p>远程登录和复制文件</p>
<ul>
<li><p>ssh</p>
<p><em>SSH 客户端是一种使用 Secure Shell（SSH） 协议连接到远程计算机的软件程序。SSH 是目前较可靠，专为远程登录会话和其他网络服务 提供安全性的协议，利用 SSH 协议可以有效防止远程管理过程中的信息泄露，通过 SSH 协议 可以对所有传输的数据进行加密，也能够防止 DNS 欺骗和 IP 欺骗；SSH 的另一项优点是传输的数据可以是经过压缩的，所以可以加快传输的速度。</em></p>
<ul>
<li><p>01    ssh 用户名@ip    secure shell    关机／重新启动<br>02    scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径    secure copy    远程复制文件</p>
</li>
<li><p>SSH 客户端的简单使用</p>
<ul>
<li>ssh [-p port] user@remote</li>
</ul>
</li>
<li><p>常见服务端口号列表：</p>
<ul>
<li><p>服务    端口号<br>SSH       22<br>Web      80</p>
<p>HTTPS  443<br>FTP        21</p>
</li>
</ul>
</li>
</ul>
</li>
<li><p>scp</p>
<ul>
<li>它的地址格式与 ssh 基本相同，需要注意的是，在指定端口时用的是大写的 -P 而不是小写的<br>-r    若给出的源文件是目录文件，则 scp 将递归复制该目录下的所有子目录和文件，目标文件必须为一个目录名<br> -P    若远程 SSH 服务器的端口不是 22，需要使用大写字母 -P 选项指定端口</li>
<li># 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py<ul>
<li># 注意：<code>:</code> 后面的路径如果不是绝对路径，则以用户的家目录作为参照路径</li>
<li>scp -P port 01.py user@remote:Desktop/01.py</li>
</ul>
</li>
<li># 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py<ul>
<li>scp -P port user@remote:Desktop/01.py 01.py # 加上 -r 选项可以传送文件夹</li>
</ul>
</li>
<li># 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop<ul>
<li>scp -r demo user@remote:Desktop</li>
</ul>
</li>
<li># 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹<ul>
<li>scp -r user@remote:Desktop demo</li>
</ul>
</li>
</ul>
</li>
<li><p>SSH 高级</p>
<ul>
<li>免密码登录<ul>
<li>配置公钥<ul>
<li>执行 ssh-keygen 即可生成 SSH 钥匙，一路回车即可</li>
</ul>
</li>
<li>上传公钥到服务器<ul>
<li>执行 ssh-copy-id -p port user@remote，可以让远程服务器记住我们的公钥</li>
</ul>
</li>
</ul>
</li>
<li>配置别名<ul>
<li>每次都输入 ssh -p port user@remote，时间久了会觉得很麻烦，特别是当 user, remote 和 port 都得输入，而且还不好记忆</li>
<li>而 配置别名 可以让我们进一步偷懒，譬如用：ssh mac 来替代上面这么一长串，那么就在 ~/.ssh/config 里面追加以下内容：</li>
<li>Host mac HostName ip地址 User itheima Port 22</li>
<li>保存之后，即可用 ssh mac 实现远程登录了，scp 同样可以使用</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="用户权限相关命令"><a href="#用户权限相关命令" class="headerlink" title="用户权限相关命令"></a>用户权限相关命令</h2><ul>
<li><p>ls -l 可以查看文件夹下文件的详细信息，从左到右依次是：</p>
<ul>
<li>权限，第 1 个字符如果是 d 表示目录</li>
<li>硬链接数，通俗地讲，就是有多少种方式，可以访问到当前目录／文件</li>
<li>拥有者，家目录下 文件／目录 的拥有者通常都是当前用户</li>
<li>组，在 Linux 中，很多时候，会出现组名和用户名相同的情况，后续会讲</li>
<li>大小</li>
<li>时间</li>
<li>名称</li>
</ul>
</li>
<li><p>chmod 简单使用</p>
<ul>
<li>chmod +/-rwx 文件名|目录名</li>
</ul>
</li>
<li><p>sudo</p>
<ul>
<li>su 是 substitute user 的缩写，表示 使用另一个用户的身份</li>
<li>sudo 命令用来以其他身份来执行命令，预设的身份为 root</li>
<li>用户使用 sudo 时，必须先输入密码，之后有 5 分钟的有效期限，超过期限则必须重新输入密码</li>
<li>若其未经授权的用户企图使用 sudo，则会发出警告邮件给管理员</li>
</ul>
</li>
<li><p>组管理 终端命令</p>
<p><em>创建组 / 删除组 的终端命令都需要通过 sudo 执行</em></p>
<ul>
<li>01    groupadd 组名 添加组<br>02    groupdel 组名 删除组<br> 03    cat /etc/group 确认组信息<br> 04    chgrp -R 组名 文件/目录名    递归修改文件/目录的所属组</li>
<li>组信息保存在 /etc/group 文件中</li>
<li>/etc 目录是专门用来保存 系统配置信息 的目录</li>
</ul>
</li>
<li><p>用户管理 终端命令</p>
<p><em>创建用户 / 删除用户 / 修改其他用户密码 的终端命令都需要通过 sudo 执行</em></p>
<ul>
<li><p>创建用户／设置密码／删除用户</p>
<ul>
<li>01    useradd -m -g 组 新建用户名    添加新用户    -m 自动建立用户家目录-g 指定用户所在的组，否则会建立一个和同名的组<br>02    passwd 用户名    设置用户密码    如果是普通用户，直接用 passwd 可以修改自己的账户密码<br> 03    userdel -r 用户名    删除用户    -r 选项会自动删除用户家目录<br> 04    cat /etc/passwd | grep 用户名 确认用户信息 新建用户后，用户信息会保存在 /etc/passwd 文件中</li>
<li>创建用户时，如果忘记添加 -m 选项指定新用户的家目录 —— 最简单的方法就是删除用户，重新创建</li>
<li>创建用户时，默认会创建一个和用户名同名的组名</li>
<li>用户信息保存在 /etc/passwd 文件中</li>
</ul>
</li>
<li><p>查看用户信息</p>
<ul>
<li><p>01    id [用户名] 查看用户 UID 和 GID 信息</p>
<p>02    who    查看当前所有登录的用户列表</p>
<p>03    whoami    查看当前登录用户的账户名</p>
</li>
<li><p>passwd 文件</p>
<ul>
<li>/etc/passwd 文件存放的是用户的信息，由 6 个分号组成的 7 个信息，分别是</li>
<li>用户名</li>
<li>密码（x，表示加密的密码）</li>
<li>UID（用户标识）</li>
<li>GID（组标识）</li>
<li>用户全名或本地帐号</li>
<li>家目录</li>
<li>登录使用的 Shell，就是登录之后，使用的终端命令，ubuntu 默认是 dash</li>
</ul>
</li>
<li><p>usermod</p>
<ul>
<li>usermod 可以用来设置 用户 的 主组 ／ 附加组 和 登录 Shell，命令格式如下：</li>
<li>主组：通常在新建用户时指定，在 etc/passwd 的第 4 列 GID 对应的组</li>
<li>附加组：在 etc/group 中最后一列表示该组的用户列表，用于指定 用户的附加权限</li>
<li>提示：设置了用户的附加组之后，需要重新登录才能生效！</li>
<li># 修改用户的主组（passwd 中的 GID）usermod -g 组 用户名</li>
<li># 修改用户的附加组usermod -G 组 用户名</li>
<li># 修改用户登录 Shellusermod -s /bin/bash 用户名</li>
<li>注意：默认使用 useradd 添加的用户是没有权限使用 sudo 以 root 身份执行命令的，可以使用以下命令，将用户添加到 sudo 附加组中<ul>
<li>usermod -G sudo 用户名</li>
</ul>
</li>
</ul>
</li>
<li><p>which</p>
<p><em>/etc/passwd 是用于保存用户信息的文件/usr/bin/passwd 是用于修改用户密码的程序</em></p>
<ul>
<li>which 命令可以查看执行命令所在位置</li>
<li>cd 这个终端命令是内置在系统内核中的，没有独立的文件，因此用 which 无法找到 cd 命令的位置</li>
</ul>
</li>
<li><p>bin 和 sbin</p>
<ul>
<li>在 Linux 中，绝大多数可执行文件都是保存在 /bin、/sbin、/usr/bin、/usr/sbin</li>
<li>/bin（binary）是二进制执行文件目录，主要用于具体应用</li>
<li>/sbin（system binary）是系统管理员专用的二进制代码存放目录，主要用于系统管理</li>
<li>/usr/bin（user commands for applications）后期安装的一些软件</li>
<li>/usr/sbin（super user commands for applications）超级用户的一些管理程序</li>
</ul>
</li>
<li><p>切换用户</p>
<ul>
<li>01    su - 用户名 切换用户，并且切换目录 - 可以切换到用户家目录，否则保持位置不变<br>02    exit 退出当前登录账户</li>
</ul>
</li>
</ul>
</li>
<li><p>修改文件权限</p>
<ul>
<li>01    chown    修改拥有者<ul>
<li># 修改文件|目录的拥有者<ul>
<li>chown 用户名 文件名|目录名<br>2    chgrp    修改组</li>
</ul>
</li>
<li># 递归修改文件|目录的组<ul>
<li>chgrp -R 组名 文件名|目录名<br>3    chmod    修改权限</li>
</ul>
</li>
<li># 递归修改文件权限<ul>
<li>chmod -R 755 文件名|目录名</li>
</ul>
</li>
</ul>
</li>
<li>chmod 在设置权限时，可以简单地使用三个数字分别对应 拥有者 ／ 组 和 其他 用户的权限</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="系统信息相关命令"><a href="#系统信息相关命令" class="headerlink" title="系统信息相关命令"></a>系统信息相关命令</h2><ul>
<li><p>时间和日期</p>
<ul>
<li>date    查看系统时间<br>cal    calendar 查看日历，-y 选项可以查看一年的日历</li>
</ul>
</li>
<li><p>磁盘和目录空间</p>
<ul>
<li>df -h    disk free 显示磁盘剩余空间<br>du -h [目录名] disk usage 显示目录下的文件大小</li>
<li>-h  以人性化的方式显示文件大小</li>
</ul>
</li>
<li><p>进程信息</p>
<ul>
<li><p>ps aux    process status 查看进程的详细状况</p>
<p><em>ps 默认只会显示当前用户通过终端启动的应用程序</em></p>
<ul>
<li><p>a    显示终端上的所有进程，包括其他用户的进程<br>u    显示进程的详细状态<br> x    显示没有控制终端的进程</p>
<pre><code>top    动态显示运行中的进程并且排序</code></pre>
</li>
<li><p>要退出 top 可以直接输入 q</p>
</li>
</ul>
</li>
<li><p>kill [-9] 进程代号 终止指定代号的进程，-9 表示强行终止</p>
</li>
</ul>
</li>
</ul>
<ul>
<li>其他命令<ul>
<li>查找文件<ul>
<li>find<ul>
<li>find [路径] -name “*.py”查找指定路径下扩展名是 .py 的文件，包括子目录</li>
<li>如果省略路径，表示在当前文件夹下查找</li>
</ul>
</li>
</ul>
</li>
<li>软链接<ul>
<li>ln<ul>
<li>ln -s 被链接的源文件 链接文件<br>建立文件的软链接，用通俗的方式讲类似于 Windows 下的快捷方式</li>
<li>没有 -s 选项建立的是一个 硬链接文件<br>两个文件占用相同大小的硬盘空间，工作中几乎不会建立文件的硬链接</li>
<li>源文件要使用绝对路径，不能使用相对路径，这样可以方便移动链接文件后，仍然能够正常使用</li>
<li>硬链接简介<ul>
<li>在 Linux 中，文件名 和 文件的数据 是分开存储的</li>
<li>在 Linux 中，只有文件的 硬链接数 == 0 才会被删除</li>
<li>使用 ls -l 可以查看一个文件的硬链接的数量</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>打包和压缩<ul>
<li>打包 ／ 解包<ul>
<li># 打包文件 tar -cvf 打包文件.tar 被打包的文件／路径…</li>
<li># 解包文件 tar -xvf 打包文件.tar<br> c    生成档案文件，创建打包文件<br> x    解开档案文件<br> v    列出归档解档的详细过程，显示进度<br> f    指定档案文件名称，f 后面一定是 .tar 文件，所以必须放选项最后</li>
</ul>
</li>
<li>压缩／解压缩<ul>
<li>gzip<ul>
<li>tar 与 gzip 命令结合可以使用实现文件 打包和压缩<ul>
<li>tar 只负责打包文件，但不压缩</li>
<li>用 gzip 压缩 tar 打包后的文件，其扩展名一般用 xxx.tar.gz</li>
</ul>
</li>
<li>在 Linux 中，最常见的压缩文件格式就是 xxx.tar.gz</li>
<li>在 tar 命令中有一个选项 -z 可以调用 gzip，从而可以方便的实现压缩和解压缩的功能</li>
<li># 压缩文件 tar -zcvf 打包文件.tar.gz 被压缩的文件／路径…</li>
<li># 解压缩文件 tar -zxvf 打包文件.tar.gz</li>
<li># 解压缩到指定路径 tar -zxvf 打包文件.tar.gz -C 目标路径<ul>
<li>-C解压缩到指定目录，注意：要解压缩的目录必须存在</li>
</ul>
</li>
</ul>
</li>
<li>bzip2(two)<ul>
<li>tar 与 bzip2 命令结合可以使用实现文件 打包和压缩（用法和 gzip 一样）<ul>
<li>tar 只负责打包文件，但不压缩，</li>
<li>用 bzip2 压缩 tar 打包后的文件，其扩展名一般用 xxx.tar.bz2</li>
</ul>
</li>
<li>在 tar 命令中有一个选项 -j 可以调用 bzip2，从而可以方便的实现压缩和解压缩的功能</li>
<li># 压缩文件 tar -jcvf 打包文件.tar.bz2 被压缩的文件／路径…</li>
<li># 解压缩文件 tar -jxvf 打包文件.tar.bz2</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>软件安装<ul>
<li>apt-get<ul>
<li># 1. 安装软件 $ sudo apt install 软件包</li>
<li># 2. 卸载软件 $ sudo apt remove 软件名</li>
<li># 3. 更新已安装的包 $ sudo apt upgrade</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</article><div class="post-copyright"><div class="post-copyright__author"><span class="post-copyright-meta">文章作者: </span><span class="post-copyright-info"><a href="mailto:undefined" rel="external nofollow noreferrer">kcyln</a></span></div><div class="post-copyright__type"><span class="post-copyright-meta">文章链接: </span><span class="post-copyright-info"><a href="https://blog.kcyln.xyz/posts/d0edc1ed/">https://blog.kcyln.xyz/posts/d0edc1ed/</a></span></div><div class="post-copyright__notice"><span class="post-copyright-meta">版权声明: </span><span class="post-copyright-info">本博客所有文章除特别声明外，均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" rel="external nofollow noreferrer" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明来自 <a href="https://blog.kcyln.xyz" target="_blank">天涯海阁</a>！</span></div></div><div class="tag_share"><div class="post-meta__tag-list"><a class="post-meta__tags" href="/tags/ubuntu/">ubuntu</a></div><div class="post_share"><div class="social-share" data-image="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg" data-sites="facebook,twitter,wechat,weibo,qq"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/social-share.js/dist/css/share.min.css"><script src="https://cdn.jsdelivr.net/npm/social-share.js/dist/js/social-share.min.js" defer></script></div></div><nav class="pagination-post" id="pagination"><div class="prev-post pull-left"><a href="/posts/7583b932/"><img class="prev-cover" src="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg" onerror="onerror=null;src='/img/404.jpg'"><div class="pagination-info"><div class="label">上一篇</div><div class="prev_info">安装pyqt时报错</div></div></a></div><div class="next-post pull-right"><a href="/posts/cb42f876/"><img class="next-cover" src="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg" onerror="onerror=null;src='/img/404.jpg'"><div class="pagination-info"><div class="label">下一篇</div><div class="next_info">部署awesome时报错</div></div></a></div></nav><div class="relatedPosts"><div class="headline"><i class="fas fa-thumbs-up fa-fw"></i><span> 相关推荐</span></div><div class="relatedPosts-list"><div><a href="/posts/2157fcb1/" title="ubuntu 16.04虚拟机使用jupyter notebook报错"><img class="cover" src="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg" alt="cover"><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2019-10-01</div><div class="title">ubuntu 16.04虚拟机使用jupyter notebook报错</div></div></a></div></div></div></div><div class="aside_content" id="aside_content"><div class="card-widget card-info"><div class="card-content"><div class="card-info-avatar is-center"><img class="avatar-img" src="https://cdn.jsdelivr.net/gh/kcyln/ImageHosting@latest/2020/12/07/8b2bf57d105d56f23dc7d3fa1b08cd9a.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/><div class="author-info__name">kcyln</div><div class="author-info__description">一分耕耘，一分收获。</div></div><div class="card-info-data"><div class="card-info-data-item is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">15</div></a></div><div class="card-info-data-item is-center"><a href="/tags/"><div class="headline">标签</div><div class="length-num">21</div></a></div><div class="card-info-data-item is-center"><a href="/categories/"><div class="headline">分类</div><div class="length-num">4</div></a></div></div><a class="button--animated" id="card-info-btn" target="_blank" rel="noopener external nofollow noreferrer" href="https://github.com/kcyln"><i class="fab fa-github"></i><span>Github</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/kcyln" rel="external nofollow noreferrer" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:xxxxxx@gmail.com" rel="external nofollow noreferrer" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div></div><div class="card-widget card-announcement"><div class="card-content"><div class="item-headline"><i class="fas fa-bullhorn card-announcement-animation"></i><span>公告</span></div><div class="announcement_content">Welcome to my Blog</div></div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="card-content"><div class="item-headline"><i class="fas fa-stream"></i><span>目录</span></div><div class="toc-content"><ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%9F%BA%E7%A1%80%E5%91%BD%E4%BB%A4"><span class="toc-number">1.</span> <span class="toc-text">基础命令</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4"><span class="toc-number">2.</span> <span class="toc-text">远程管理常用命令</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4"><span class="toc-number">3.</span> <span class="toc-text">用户权限相关命令</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%B3%BB%E7%BB%9F%E4%BF%A1%E6%81%AF%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4"><span class="toc-number">4.</span> <span class="toc-text">系统信息相关命令</span></a></li></ol></div></div></div><div class="card-widget card-recent-post"><div class="card-content"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/posts/f4956656/" title="常用安装"><img src="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="常用安装"/></a><div class="content"><a class="title" href="/posts/f4956656/" title="常用安装">常用安装</a><time datetime="2020-12-08T03:57:34.000Z" title="发表于 2020-12-08 11:57:34">2020-12-08</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/ec1f4cbd/" title="python3下读取redis返回bytes类型的问题"><img src="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="python3下读取redis返回bytes类型的问题"/></a><div class="content"><a class="title" href="/posts/ec1f4cbd/" title="python3下读取redis返回bytes类型的问题">python3下读取redis返回bytes类型的问题</a><time datetime="2020-09-22T16:00:00.000Z" title="发表于 2020-09-23 00:00:00">2020-09-23</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/9fd46b0b/" title="docker-compose启动后其中的web容器立刻停止"><img src="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="docker-compose启动后其中的web容器立刻停止"/></a><div class="content"><a class="title" href="/posts/9fd46b0b/" title="docker-compose启动后其中的web容器立刻停止">docker-compose启动后其中的web容器立刻停止</a><time datetime="2020-09-19T16:00:00.000Z" title="发表于 2020-09-20 00:00:00">2020-09-20</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/942da6d9/" title="pip更换国内源"><img src="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="pip更换国内源"/></a><div class="content"><a class="title" href="/posts/942da6d9/" title="pip更换国内源">pip更换国内源</a><time datetime="2020-08-18T16:00:00.000Z" title="发表于 2020-08-19 00:00:00">2020-08-19</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/posts/ede1601b/" title="Git忽略规则(.gitignore配置）不生效原因和解决"><img src="https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Git忽略规则(.gitignore配置）不生效原因和解决"/></a><div class="content"><a class="title" href="/posts/ede1601b/" title="Git忽略规则(.gitignore配置）不生效原因和解决">Git忽略规则(.gitignore配置）不生效原因和解决</a><time datetime="2020-08-06T16:00:00.000Z" title="发表于 2020-08-07 00:00:00">2020-08-07</time></div></div></div></div></div></div></div></main><footer id="footer" style="background-image: url(https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg)"><div id="footer-wrap"><div class="copyright">&copy;2020 By kcyln</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener external nofollow noreferrer" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener external nofollow noreferrer" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div><div class="footer_custom_text">Hi, welcome to my blog!</div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="readmode" type="button" title="阅读模式"><i class="fas fa-book-open"></i></button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog"></i></button><button class="close" id="mobile-toc-button" type="button" title="目录"><i class="fas fa-list-ul"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div id="algolia-search"><div class="search-dialog"><div class="search-dialog__title" id="algolia-search-title">Algolia</div><div id="algolia-input-panel"><div id="algolia-search-input"></div></div><hr/><div id="algolia-search-results"><div id="algolia-hits"></div><div id="algolia-pagination"></div><div id="algolia-stats"></div></div><span class="search-close-button"><i class="fas fa-times"></i></span></div><div id="search-mask"></div></div><div><script src="https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js"></script><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script><script src="/js/search/algolia.js"></script><script>var preloader = {
  endLoading: () => {
    document.body.style.overflow = 'auto';
    document.getElementById('loading-box').classList.add("loaded")
  },
  initLoading: () => {
    document.body.style.overflow = '';
    document.getElementById('loading-box').classList.remove("loaded")

  }
}
window.addEventListener('load',()=> {preloader.endLoading()})</script><div class="js-pjax"><script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div><div class="aplayer no-destroy" data-id="153259573" data-server="netease" data-type="playlist" data-fixed="true" data-mini="true" data-listFolded="false" data-order="random" data-preload="none" data-autoplay="true" muted></div><script id="canvas_nest" defer="defer" color="0,0,255" opacity="0.7" zIndex="-1" count="99" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-nest.min.js"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css"><script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script><script src="https://cdn.jsdelivr.net/gh/metowolf/MetingJS@1.2/dist/Meting.min.js"></script><script src="https://cdn.jsdelivr.net/npm/pjax/pjax.min.js"></script><script>let pjaxSelectors = [
  'title',
  '#config_change',
  '#body-wrap',
  '#rightside-config-hide',
  '#rightside-config-show',
  '.js-pjax'
]

if (false) {
  pjaxSelectors.unshift('meta[property="og:image"]', 'meta[property="og:title"]', 'meta[property="og:url"]')
}

var pjax = new Pjax({
  elements: 'a:not([target="_blank"])',
  selectors: pjaxSelectors,
  cacheBust: false,
  analytics: true,
  scrollRestoration: false
})

document.addEventListener('pjax:complete', function () {
  window.refreshFn()

  $('script[data-pjax]').each(function () {
    $(this).parent().append($(this).remove())
  })

  GLOBAL_CONFIG.islazyload && window.lazyLoadInstance.update()

  typeof chatBtnFn === 'function' && chatBtnFn()
  typeof panguInit === 'function' && panguInit()

  if (typeof gtag === 'function') {
    gtag('config', 'G-CYJNKFDP03', {'page_path': window.location.pathname});
  }

  typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting()

  // Analytics
  if (false) {
    MtaH5.pgv()
  }

  // prismjs
  typeof Prism === 'object' && Prism.highlightAll()

  typeof preloader === 'object' && preloader.endLoading()
})


document.addEventListener('pjax:send', function () {
  typeof preloader === 'object' && preloader.initLoading()
  
  if (window.aplayers) {
    for (let i = 0; i < window.aplayers.length; i++) {
      if (!window.aplayers[i].options.fixed) {
        window.aplayers[i].destroy()
      }
    }
  }

  typeof typed === 'object' && typed.destroy()

  $(window).off('scroll')

  //reset readmode
  $('body').hasClass('read-mode') && $('body').removeClass('read-mode')

})</script></div></body></html>